package com.jcfk.eam.domain.dto.base;

import com.jcfk.system.domain.dto.BaseDTO;

import java.util.ArrayList;
import java.util.List;
import org.hibernate.validator.constraints.Length;

import lombok.Data;

/**
 * 资产组成部位
 *
 * @author yrl
 * @email 
 * @date 2024-12-04
 */
@Data
public class EamAssetPositionDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    /**
     * 数据版本号
     */
    private Long version;

    /**
     * 资产大类
     */
    private Integer assetKind;

    /**
     * 资产类型主键
     */
    @Length(max = 32, message = "资产类型主键长度不能超过32")
    private String assetTypeId;

    /**
     * 资产类型编号
     */
    private String assetTypeCode;

    /**
     * 资产类型名称
     */
    private String assetTypeName;
    /**
     * 资产主键
     */
    private String assetId;
    /**
     * 资产编码
     */
    private String assetCode;
    /**
     * 资产名称
     */
    private String assetName;
    /**
     * 资产品牌主键
     */
    @Length(max = 32, message = "资产品牌主键长度不能超过32")
    private String assetBrandId;

    /**
     * 资产型号主键
     */
    @Length(max = 32, message = "资产型号主键长度不能超过32")
    private String assetModelId;

    /**
     * 资产型号
     */
    @Length(max = 50, message = "资产型号长度不能超过50")
    private String assetModelNo;

    /**
     * 部位编号
     */
    @Length(max = 20, message = "部位编号长度不能超过20")
    private String positionCode;

    /**
     * 部位名称
     */
    @Length(max = 50, message = "部位名称长度不能超过50")
    private String positionName;

    /**
     * 序号
     */
    @Length(max = 32, message = "序号长度不能超过32")
    private String sort;

    /**
     * 父级ID
     */
    @Length(max = 32, message = "父级ID长度不能超过32")
    private String parentId;

    /**
     * 全主键
     */
    @Length(max = 255, message = "全主键长度不能超过255")
    private String allId;

    /**
     * 全编号
     */
    @Length(max = 255, message = "全编号长度不能超过255")
    private String allCode;

    /**
     * 全名称
     */
    @Length(max = 255, message = "全名称长度不能超过255")
    private String allName;

    /**
     * 备注
     */
    @Length(max = 255, message = "备注长度不能超过255")
    private String remarks;

    /**
     * 创建人名
     */
    @Length(max = 50, message = "创建人名长度不能超过50")
    private String createdUserName;

    /**
     * 更新人名
     */
    @Length(max = 50, message = "更新人名长度不能超过50")
    private String lastUpdatedUserName;

    /**
     * 是否停用
     */
    private Integer enabled;

    /**
     * 是否删除
     */
    private Integer deleted;

    /**
     * 批量删除id
     */
    private List<String> ids;


    /**
     * 子部件列表
     */
    private List<EamAssetPositionDTO> nodes = new ArrayList<>();
}
